﻿namespace Point3DProgram
{
    using System;

    public struct Point3D
    {
        private static readonly Point3D zero = new Point3D(0, 0, 0);

        public Point3D(double pointX, double pointY, double pointZ)
            : this()
        {
            this.PointX = pointX;
            this.PointY = pointY;
            this.PointZ = pointZ;
        }

        public static Point3D Zero
        {
            get
            {
                return zero;
            }
        }

        public double PointX { get; set; }

        public double PointY { get; set; }

        public double PointZ { get; set; }

        public override string ToString()
        {
            return string.Format("({0}; {1}; {2})", this.PointX, this.PointY, this.PointZ);
        }
    }
}
